Turbo coding is included in the physical layer of many broadcasting and wireless communication standards. A Turbo decoder included in the physical layer includes an interleaver, as specified by the standard.
Turbo codes are related to channel coding schemes, which are used, e.g., in wireless communication and networking standards, such as: the Universal Mobile Telecommunications System (UMTS), Code division multiple access 2000 (CDMA2000), Worldwide Interoperability for Microwave Access (WiMax), Wireless Broadband (WiBro) the High-Speed Downlink Packet Access (HSDPA) protocol, etc.
For example, a sender encodes original data using a turbo encoder for transmission, a receiver decodes received data using a turbo decoder. During transmission errors may occur. The use of a turbo encoder and turbo decoder allows the correction of errors.
The throughput requirements of wireless standards have been increasing. New standards, such as UMTS LTE, require over 100 Mbps peak throughput.
A turbo decoder comprises two main parts, a Soft-Input-Soft-Output (SISO) decoder, and an interleaver. During execution, the decoder works on so-called soft data. Soft data gives probabilistic information on the data that was originally sent. The decoder and interleaver cooperate in an iterative process to correct the errors in a received data frame. For example, first the decoder corrects a few errors in the data. Next, the frame is interleaved and decoded again. In this way, in each iteration more errors are corrected.
The structure and operation of turbo decoders is, for example, described in S. A. Barbulescu and S. S. Pietrobon, “Turbo codes: A tutorial on a new class of powerful error correcting coding schemes, Part 1: Code structures and interleaver design”, J. Elec. and Electron. Eng., Australia, vol. 19, pp. 129-142, September 1999; and S. A. Barbulescu and S. S. Pietrobon, “Turbo codes: A tutorial on a new class of powerful error correcting coding schemes, Part 2: Decoder design and performance,” J. Elec. and Electron. Eng., Australia, vol. 19, pp. 143-152, September 1999.
A turbo decoder consists of two main parts, a Soft-Input-Soft-Output (SISO) decoder, and an interleaver. The SISO decodes the data frame, corrects a few errors. The frame is interleaved and decoded again. In this way, each time more errors are corrected. These iterations are repeated for a predefined number of times, until no more errors are corrected, or until some other pre-defined stopping criterion is satisfied. This iterative decoding only works if the data is interleaved. The interleaving rules are specified in the communication standard and are designed to shuffle data in a pseudo-random manner.
When only one standard needs to be supported, the interleaver address generation can also be implemented in dedicated hardware. However, different standards specify turbo interleaving schemes that vary largely.